As integrated circuit designs continue to increase in size and complexity, the verification of their correct operation becomes increasingly time-consuming. Rapid verification is particularly important for circuit designs for portable consumer electronics devices. Smartphones, notebook and tablet computers, and digital cameras for example all require proper integration of software and hardware for reliable operation. Consumer devices commonly feature various high speed data interfaces and attached peripheral components such as image sensors, for capturing images and video and then generating properly formatted multimedia data for users.
There are many different sensor devices currently available from various manufacturers, and each sensor device may have unique features and options to be managed by the ASIC to which it interconnects. Designers may therefore need to verify that their ASICs work properly with particular sensor devices before their designs are actually manufactured. That is, test results may be obtained and compared to expected behavior. Unfortunately, simulation times with conventional software-based circuit simulation tools have become excessive for many very large circuit designs.
Further, accurate models for particular sensor devices may be unavailable and/or may improperly represent some aspects of sensor device operation. Some dynamic aspects of sensor device operation are also simply very difficult to model adequately. For example, most sensor device models do not accurately describe the changes to image data that may result from changes to the input parameters for controlling image contrast, focus, and image brightness under various conditions.
Designers are therefore increasingly moving from the use of a testbench-based sensor device model to the use of a real fabricated sensor device when verifying the interoperation of the sensor device and the ASIC design to which it interconnects. This design path is complicated by the fact that many actual low-cost sensor devices are designed to generate multimedia data continuously and only at their normally high output speeds, versus generating only a limited amount of test data at sufficiently low output speeds for an ASIC simulation system.
Design tool vendors are therefore pursuing different approaches to resolve the ASIC verification speed issue for their customers. These approaches may include operating a version of the ASIC design via improved software-based circuit design simulation, hardware-assisted circuit design simulation acceleration, and fully hardware-based circuit design emulation. For generality, in this description the term “emulator” refers to a system using any combination of these different verification approaches.
Emulators may enable testing speeds that are hundreds to thousands of times greater than with conventional software-based simulation. An emulated ASIC may issue commands to a connected real sensor device and receive multimedia data in response, just as when a testbench-based model of the sensor device is used. However, generated sensor device data is often provided continuously by a real sensor device, which makes simple buffering difficult.
The mismatch between the sensor device data rates and the maximum data rates that emulated ASICs can handle has recently been addressed through the use of adapters in emulators. An adapter is generally a hardware device that connects an emulated device under test (e.g., an ASIC) to an external stimulus generator (e.g., a sensor device). In one conventional example, the adapter may send a pre-generated sensor data stream into the emulated ASIC at a speed the emulator can manage, to provide particular image sequences for ASIC verification. The pre-generated sensor data stream may be a merely re-played recording of data from a manufactured sensor device, or may be produced by a testbench-based sensor device modeled in a circuit simulation tool being run by a number of processors for example. However, such pre-generated sensor data of course does not change even if the ASIC generates parameterized control commands for transmission to the sensor device.
Such simple re-playing of pre-recorded or programmed static data streams for testing ASIC designs lacks flexibility and does not take full advantage of the availability of active sensor data generated by a sensor device that is responsive to ASIC commands. A need thus exists for more fully dynamic interoperation between emulated ASIC designs and interfaced sensor devices. Accordingly, the inventors have developed a novel way to help circuit designers and design tool vendors more reliably design and dynamically test the operation of ASICs to be used with high speed sensor devices.